// --------------------------------------------------------------------------------------------
// Version: MPL 1.1/GPL 2.0/LGPL 2.1
// 
// The contents of this file are subject to the Mozilla Public License Version
// 1.1 (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
// http://www.mozilla.org/MPL/
// 
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
// for the specific language governing rights and limitations under the
// License.
// 
// <remarks>
// Generated by IDLImporter from file nsIAccessibleStates.idl
// 
// You should use these interfaces when you access the COM objects defined in the mentioned
// IDL/IDH file.
// </remarks>
// --------------------------------------------------------------------------------------------
namespace Gecko
{
	using System;
	using System.Runtime.InteropServices;
	using System.Runtime.InteropServices.ComTypes;
	using System.Runtime.CompilerServices;
	
	
	/// <summary>
    ///-*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
    ////* This Source Code Form is subject to the terms of the Mozilla Public
    /// License, v. 2.0. If a copy of the MPL was not distributed with this
    /// file, You can obtain one at http://mozilla.org/MPL/2.0/. </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("f1e0fbb7-fde4-4519-9383-2bcbee428513")]
	public interface nsIAccessibleStates
	{
	}
	
	/// <summary>nsIAccessibleStatesConsts </summary>
	public class nsIAccessibleStatesConsts
	{
		
		// <summary>
        // MSAA State flags - used for bitfield. More than 1 allowed.
        // </summary>
		public const ulong STATE_UNAVAILABLE = 0x00000001;
		
		// <summary>
        // Disabled, maps to opposite of Java ENABLED, Gnome/ATK SENSITIVE?
        // </summary>
		public const ulong STATE_SELECTED = 0x00000002;
		
		// 
		public const ulong STATE_FOCUSED = 0x00000004;
		
		// 
		public const ulong STATE_PRESSED = 0x00000008;
		
		// 
		public const ulong STATE_CHECKED = 0x00000010;
		
		// 
		public const ulong STATE_MIXED = 0x00000020;
		
		// <summary>
        // 3-state checkbox or toolbar button
        // </summary>
		public const ulong STATE_READONLY = 0x00000040;
		
		// <summary>
        // Maps to opposite of Java/Gnome/ATK EDITABLE state
        // </summary>
		public const ulong STATE_HOTTRACKED = 0x00000080;
		
		// 
		public const ulong STATE_DEFAULT = 0x00000100;
		
		// 
		public const ulong STATE_EXPANDED = 0x00000200;
		
		// 
		public const ulong STATE_COLLAPSED = 0x00000400;
		
		// 
		public const ulong STATE_BUSY = 0x00000800;
		
		// 
		public const ulong STATE_FLOATING = 0x00001000;
		
		// <summary>
        // Children "owned" not "contained" by parent
        // </summary>
		public const ulong STATE_MARQUEED = 0x00002000;
		
		// 
		public const ulong STATE_ANIMATED = 0x00004000;
		
		// 
		public const ulong STATE_INVISIBLE = 0x00008000;
		
		// <summary>
        // Programatically hidden
        // </summary>
		public const ulong STATE_OFFSCREEN = 0x00010000;
		
		// <summary>
        // Scrolled off
        // </summary>
		public const ulong STATE_SIZEABLE = 0x00020000;
		
		// 
		public const ulong STATE_MOVEABLE = 0x00040000;
		
		// 
		public const ulong STATE_SELFVOICING = 0x00080000;
		
		// 
		public const ulong STATE_FOCUSABLE = 0x00100000;
		
		// 
		public const ulong STATE_SELECTABLE = 0x00200000;
		
		// 
		public const ulong STATE_LINKED = 0x00400000;
		
		// 
		public const ulong STATE_TRAVERSED = 0x00800000;
		
		// 
		public const ulong STATE_MULTISELECTABLE = 0x01000000;
		
		// <summary>
        // Supports multiple selection
        // </summary>
		public const ulong STATE_EXTSELECTABLE = 0x02000000;
		
		// <summary>
        // Supports extended selection
        // </summary>
		public const ulong STATE_ALERT_LOW = 0x04000000;
		
		// <summary>
        // This information is of low priority
        // </summary>
		public const ulong STATE_ALERT_MEDIUM = 0x08000000;
		
		// <summary>
        // This information is of medium priority
        // </summary>
		public const ulong STATE_ALERT_HIGH = 0x10000000;
		
		// <summary>
        // This information is of high priority
        // </summary>
		public const ulong STATE_PROTECTED = 0x20000000;
		
		// <summary>
        // Maps to Gnome's *Role* ATK_ROLE_PASSWD_TEXT, nothing for Java?
        // </summary>
		public const ulong STATE_HASPOPUP = 0x40000000;
		
		// <summary>
        // STATE_REQUIRED AND STATE_INVALID
        // </summary>
		public const ulong STATE_REQUIRED = STATE_ALERT_LOW;
		
		// 
		public const ulong STATE_IMPORTANT = STATE_ALERT_MEDIUM;
		
		// <summary>
        // Not currently used
        // </summary>
		public const ulong STATE_INVALID = STATE_ALERT_HIGH;
		
		// 
		public const ulong STATE_CHECKABLE = STATE_MARQUEED;
		
		// <summary>
        // Extended state flags (for now non-MSAA, for Java and Gnome/ATK support)
        // "Extended state flags" has separate value space from "MSAA State flags".
        // </summary>
		public const ulong EXT_STATE_SUPPORTS_AUTOCOMPLETION = 0x00000001;
		
		// <summary>
        // For editable areas that have any kind of autocompletion
        // </summary>
		public const ulong EXT_STATE_DEFUNCT = 0x00000002;
		
		// <summary>
        // Object no longer exists
        // </summary>
		public const ulong EXT_STATE_SELECTABLE_TEXT = 0x00000004;
		
		// <summary>
        // For text which is selectable, object must implement nsIAccessibleText
        // </summary>
		public const ulong EXT_STATE_EDITABLE = 0x00000008;
		
		// <summary>
        // Implements nsIAccessibleEditableText
        // </summary>
		public const ulong EXT_STATE_ACTIVE = 0x00000010;
		
		// <summary>
        // This window is currently the active window
        // </summary>
		public const ulong EXT_STATE_MODAL = 0x00000020;
		
		// <summary>
        // Must do something with control before leaving it
        // </summary>
		public const ulong EXT_STATE_MULTI_LINE = 0x00000040;
		
		// <summary>
        // Edit control that can take multiple lines
        // </summary>
		public const ulong EXT_STATE_HORIZONTAL = 0x00000080;
		
		// <summary>
        // Uses horizontal layout
        // </summary>
		public const ulong EXT_STATE_OPAQUE = 0x00000100;
		
		// <summary>
        // Indicates this object paints every pixel within its rectangular region.
        // </summary>
		public const ulong EXT_STATE_SINGLE_LINE = 0x00000200;
		
		// <summary>
        // This text object can only contain 1 line of text
        // </summary>
		public const ulong EXT_STATE_TRANSIENT = 0x00000400;
		
		// <summary>
        //
        // </summary>
		public const ulong EXT_STATE_VERTICAL = 0x00000800;
		
		// <summary>
        // Especially used for sliders and scrollbars
        // </summary>
		public const ulong EXT_STATE_STALE = 0x00001000;
		
		// <summary>
        // Object not dead, but not up-to-date either
        // </summary>
		public const ulong EXT_STATE_ENABLED = 0x00002000;
		
		// <summary>
        // A widget that is not unavailable
        // </summary>
		public const ulong EXT_STATE_SENSITIVE = 0x00004000;
		
		// <summary>
        // Same as ENABLED for now
        // </summary>
		public const ulong EXT_STATE_EXPANDABLE = 0x00008000;
		
		// <summary>
        // If COLLAPSED or EXPANDED
        // </summary>
		public const ulong EXT_STATE_PINNED = 0x00010000;
	}
}
